package Dao;

import java.util.ArrayList;
import java.util.Iterator;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import Negocio.ItemSolicitud;
import Negocio.Rodamiento;
import Negocio.SolicitudRodamientos;
import Persistencia.HibernateUtil;

public class SolicitudRodamientoDAO {
	
	private static SolicitudRodamientoDAO instancia = null;
	private static SessionFactory sf = null;
	
	public static SolicitudRodamientoDAO getInstancia() {
		if(sf==null || sf.isClosed())
			sf = HibernateUtil.getSessionFactory();
		if(instancia == null){
			instancia = new SolicitudRodamientoDAO();
		} 
		return instancia;
	}
	
	public void grabarSolicitudRodamiento(SolicitudRodamientos solicitud) {
		Session session = sf.openSession();
		session.beginTransaction();
		session.save(solicitud);
		Iterator<ItemSolicitud> it = solicitud.getItemsSolicitud().iterator();
		while(it.hasNext())
		{
			grabarItemSolicitudRodamiento(it.next());
		}
		session.flush();
		session.getTransaction().commit();
		session.close();
	}
	public void grabarItemSolicitudRodamiento(ItemSolicitud item) {
		Session session = sf.openSession();
		session.beginTransaction();
		session.save(item);
		session.flush();
		session.getTransaction().commit();
		session.close();
	}

	public ArrayList<SolicitudRodamientos> obtenerSolicitudesRodamiento() {
		Session session = sf.openSession();
		session.beginTransaction();
		ArrayList<SolicitudRodamientos> a =new ArrayList<SolicitudRodamientos>(session.createQuery("From SolicitudRodamientos").list()); 
		session.flush();
		session.getTransaction().commit();
		session.close();
		return a;
	}

}
